home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / mui_toolbar / example / Toolbar-Demo.d next >
Encoding:
Text File  |  2002-10-28  |  7.4 KB  |  169 lines

  1. /*
  2. ** 2002 / MUI Toolbar example, converted from the AmigaE source by Philippe van Calsteren
  3. **
  4. ** Example code for Toolbar.mcc.
  5. ** $VER: Toolbar-Demo.e V1.1 (10-Sep-99)
  6. **  by QXY (qxyka@elender.hu)
  7. **
  8. ** ToolBar.mcc & InfoText.mcc
  9. **  (C) Benny Kjær Nielsen
  10. */
  11.  
  12. MODULE 'dos/dos', 'utility/tagitem'
  13. MODULE    'intuition/intuition','utility/tagitem','graphics/text',
  14.             'intuition/classes',
  15.             'intuition/classusr',
  16.             'intuition/screens'
  17.  
  18. MODULE    'muimaster',    'libraries/mui',
  19.             'mui/toolbar_mcc', 'mui/infotext_mcc',
  20.                 'utility','utility/tagitem',
  21.                    'lib/amiga'
  22. DEF    MUIMasterBase, UtilityBase
  23. CONST ERR_MEM=1
  24. ENUM  NEW_, OPEN, CUT=3, COPY, PASTE, UNDO
  25. ENUM  BOLD, ITALIC, UNDERLINED, LEFT=4, CENTER, RIGHT
  26. DEF app, wi_Main, tb_Bank1, tb_Bank2, tx_Status, tx_About, floatText, //sigs,
  27.     list_Bank1:PTR TO LONG, list_Bank2:PTR TO LONG, bank1, bank2, cc, //open, cc,
  28.     running, result, signal
  29. RAISE ERR_MEM IF New()=NIL
  30.  
  31. PROC main() 
  32.  
  33.   list_Bank1:=[[TDT_BUTTON, "n",  0, 'New', NIL, NIL]:MUIP_Toolbar_Description,
  34.            [TDT_BUTTON, "o",  0, 'Open', NIL, NIL]:MUIP_Toolbar_Description, 
  35.            [TDT_SPACE, NIL,  NIL, NIL, NIL, NIL]:MUIP_Toolbar_Description,
  36.            [TDT_BUTTON, "c",  0, 'Cut', NIL, NIL]:MUIP_Toolbar_Description,
  37.            [TDT_BUTTON, "y",  0, 'Copy', NIL, NIL]:MUIP_Toolbar_Description,
  38.             [TDT_BUTTON, "p",  0, 'Paste', NIL, NIL]:MUIP_Toolbar_Description,
  39.            [TDT_BUTTON, "u",  0, 'Undo', NIL, NIL]:MUIP_Toolbar_Description,
  40.            [TDT_END, NIL,  NIL, NIL, NIL, NIL]:MUIP_Toolbar_Description]
  41.  
  42. //  list_Bank1:=[Toolbar_KeyButton(0,           'New',   "n"),
  43. //               Toolbar_KeyButton(TDF_GHOSTED, 'Open',  "o"),
  44. //               Toolbar_Space,
  45. //               Toolbar_KeyButton(0,           'Cut',   "c"),
  46. //               Toolbar_KeyButton(0,           'Copy',  "y"),
  47. //               Toolbar_KeyButton(0,           'Paste', "p"),
  48. //               Toolbar_KeyButton(0,           'Undo',  "u"),
  49. //               Toolbar_End]
  50.  
  51.   bank1:=New(8*SIZEOF_MUIP_Toolbar_Description)
  52.   FOR cc:=0 TO 7 DO CopyMem(list_Bank1[cc],bank1+(cc*SIZEOF_MUIP_Toolbar_Description),SIZEOF_MUIP_Toolbar_Description)
  53.  
  54.   list_Bank2:=[[TDT_BUTTON, 0, TDF_TOGGLE+TDF_SELECTED, 0, 'Bold text',       0]:MUIP_Toolbar_Description,
  55.                [TDT_BUTTON, 0, TDF_TOGGLE,              0, 'Italic text',     0]:MUIP_Toolbar_Description,
  56.                [TDT_BUTTON, 0, TDF_TOGGLE,              0, 'Underlined text', 0]:MUIP_Toolbar_Description,
  57.                [TDT_SPACE, NIL, NIL, NIL, NIL, NIL]:MUIP_Toolbar_Description,
  58.                [TDT_BUTTON, 0, TDF_RADIOTOGGLE+TDF_SELECTED, 0, 'Left aligned',  $0020+$0040]:MUIP_Toolbar_Description,
  59.                [TDT_BUTTON, 0, TDF_RADIOTOGGLE,              0, 'Centered',      $0010+$0040]:MUIP_Toolbar_Description,
  60.                [TDT_BUTTON, 0, TDF_RADIOTOGGLE,              0, 'Right aligned', $0010+$0020]:MUIP_Toolbar_Description,
  61.                [TDT_END, 0, 0, 0, 0, 0]:MUIP_Toolbar_Description]
  62.   bank2:=New(8*SIZEOF_MUIP_Toolbar_Description)
  63.   FOR cc:=0 TO 7 DO CopyMem(list_Bank2[cc],bank2+(cc*SIZEOF_MUIP_Toolbar_Description),SIZEOF_MUIP_Toolbar_Description)
  64.  
  65.   IFN MUIMasterBase:=OpenLibrary(MUIMASTER_NAME, MUIMASTER_VMIN) THEN
  66.     Raise('app')
  67.   IFN UtilityBase:=OpenLibrary('utility.library',36) THEN
  68.     Raise('Failed to open utility.library')
  69.  
  70.   floatText:='This is a simple demonstration OF the features '+
  71.              'offered by the Toolbar class. IF you want to know '+
  72.              'all the details then just take a quick look in '+
  73.              'the autodoc.\n\n'+
  74.              'Comments, suggestions, bugreports, etc. can be '+
  75.              'e-mailed to floyd@amiga.dk OR benny@diku.dk.\n\n'+
  76.              'Latest release is available at:\n'+
  77.              '  http://www.diku.dk/students/benny'
  78.  
  79.   app := ApplicationObject,
  80.     MUIA_Application_Title      , 'Toolbar-Demo',
  81.     MUIA_Application_Version    , '$VER: Toolbar-Demo V1.1.1 (12-Okt-02)',
  82.     MUIA_Application_Copyright  , '(C)PVC 2002.',
  83.     MUIA_Application_Author     , 'PVC',
  84.     MUIA_Application_Description, 'Toolbar.mcc demo program in AmigaD',
  85.     MUIA_Application_Base       , 'TOOLBAR',
  86.  
  87.     SubWindow, wi_Main := WindowObject,
  88.       MUIA_Window_Title, 'Toolbar Demo',
  89.       MUIA_Window_ID   , "MAIN",
  90.       WindowContents, HGroup,
  91.  
  92.         Child, VGroup,
  93.           Child, HGroup,
  94.             Child, RectangleObject, End,
  95.         
  96.             Child, tb_Bank1:= MUI_NewObjectA('Toolbar.mcc',[TAG_IGNORE, 0,
  97.                 MUIA_Toolbar_ImageType,   MUIV_Toolbar_ImageType_File,
  98.                 MUIA_Toolbar_ImageNormal, 'PROGDIR:Images/ButtonBank1.bsh',
  99.                 MUIA_Toolbar_ImageSelect, 'PROGDIR:Images/ButtonBank1s.bsh',
  100.                 MUIA_Toolbar_ImageGhost,  'PROGDIR:Images/ButtonBank1g.bsh',
  101.                 MUIA_Toolbar_Description, bank1,
  102.                 MUIA_Font, MUIV_Font_Tiny,
  103.                 MUIA_ShortHelp, FALSE,
  104.                 MUIA_Draggable, MUI_TRUE,
  105.             End),
  106.  
  107.             Child, RectangleObject, End,
  108.           End,
  109.           Child, tx_Status := MUI_NewObjectA(MUIC_InfoText,[TAG_IGNORE, 0, End),
  110.           Child, tx_About := FloattextObject, TextFrame,
  111.             MUIA_Background, MUII_TextBack,
  112.             MUIA_Floattext_Text, floatText,
  113.           End,
  114.         End,
  115.         Child, VGroup,
  116.           Child, RectangleObject, End,
  117.  
  118.           Child, tb_Bank2  := MUI_NewObjectA('Toolbar.mcc',[TAG_IGNORE, 0, //ToolbarObject,
  119.             MUIA_Toolbar_ImageType,   MUIV_Toolbar_ImageType_File,
  120.             MUIA_Toolbar_ImageNormal, 'PROGDIR:Images/ButtonBank2.bsh',
  121.             MUIA_Toolbar_ImageSelect, 'PROGDIR:Images/ButtonBank2s.bsh',
  122.             MUIA_Toolbar_ImageGhost,  'PROGDIR:Images/ButtonBank2g.bsh',
  123.             MUIA_Toolbar_Description, bank2,
  124.             MUIA_ShortHelp, MUI_TRUE,
  125.             MUIA_Toolbar_Horizontal, FALSE,
  126.           End),
  127.  
  128.           Child, RectangleObject, End,
  129.         End,  
  130.       End,
  131.     End,
  132.   End
  133.  
  134.   IFN app THEN Raise('app')
  135.  
  136.   DoMethod(wi_Main,MUIM_Notify,MUIA_Window_CloseRequest, MUI_TRUE,app,2,MUIM_Application_ReturnID,MUIV_Application_ReturnID_Quit)
  137.  
  138.   DoMethod(tb_Bank1, MUIM_Toolbar_Notify, NEW_, MUIV_Toolbar_Notify_Pressed, FALSE,app, 2, MUIM_Application_ReturnID, MUIV_Application_ReturnID_Quit)
  139.   DoMethod(tb_Bank1, MUIM_Toolbar_KillNotify, 0, MUIV_Toolbar_Notify_Pressed) 
  140.   DoMethod(tb_Bank1, MUIM_Toolbar_Notify, COPY, MUIV_Toolbar_Notify_Pressed, MUIV_EveryTime,tb_Bank2, 4, MUIM_Toolbar_Set, BOLD, MUIV_Toolbar_Set_Selected, MUIV_TriggerValue)
  141.   DoMethod(tb_Bank1, MUIM_Notify, MUIA_Toolbar_HelpString, MUIV_EveryTime,tx_Status, 3, MUIM_Set, MUIA_Text_Contents, MUIV_TriggerValue)
  142.  
  143.   DoMethod(tb_Bank2,MUIM_Toolbar_Notify,UNDERLINED,MUIV_Toolbar_Notify_Pressed,FALSE,MUIV_Notify_Self,4,MUIM_Toolbar_Set,ITALIC,MUIV_Toolbar_Set_Selected,FALSE)
  144.   DoMethod(tb_Bank2,MUIM_Notify,MUIA_Toolbar_HelpString,MUIV_EveryTime,tx_Status,3,MUIM_Set,MUIA_Text_Contents,MUIV_TriggerValue)
  145.  
  146.   set(wi_Main,MUIA_Window_Open,MUI_TRUE)
  147.   running:=TRUE  
  148.   WHILE running
  149.     result:=DoMethod(app, MUIM_Application_NewInput, &signal)
  150.     SELECT result
  151.         CASE MUIV_Application_ReturnID_Quit
  152.             running:=FALSE
  153.         DEFAULT
  154.             IF running THEN IF signal THEN Wait(signal)
  155.     ENDSELECT
  156.   ENDWHILE
  157.   set(wi_Main,MUIA_Window_Open,FALSE)
  158.  
  159. EXCEPTDO
  160.  
  161.   IF app THEN MUI_DisposeObject(app)   //IF mcc THEN MUI_DeleteCustomClass(mcc)
  162.   IF MUIMasterBase THEN CloseLibrary(MUIMasterBase)
  163.   IF exception THEN PrintF('\s\n',exception)
  164.   IF exception
  165.   IF exception>ERR_MEM THEN PrintF('\s\n',exception) ELSE PrintF('Not enough memory!\n') ENDIF
  166.   IF MUIMasterBase THEN CloseLibrary(MUIMasterBase)
  167.  
  168. ENDPROC
  169.